// 用户管理相关API
import axios from 'axios';

/**
 * 获取用户列表
 * @param {Object} params - 查询参数
 * @param {number} params.page - 页码
 * @param {number} params.pageSize - 每页数量
 * @param {string} [params.search] - 搜索关键词
 * @returns {Promise} - 返回用户列表
 */
export const getUserList = async (params) => {
  try {
    const token = localStorage.getItem('token');
    if (!token) {
      return {
        code: 401,
        message: '未登录，请先登录',
        data: null
      };
    }

    // 构建查询字符串
    const queryParams = new URLSearchParams();
    if (params.page) queryParams.append('page', params.page);
    if (params.pageSize) queryParams.append('pageSize', params.pageSize);
    if (params.search && params.search.trim() !== '') queryParams.append('search', params.search);
    
    // 使用axios发送请求
    console.log('请求参数:', params); // 添加日志以便调试
    
    const response = await axios.get(`/api/users`, {
      params: {
        page: params.page,
        pageSize: params.pageSize,
        search: params.search && params.search.trim() !== '' ? params.search : undefined
      },
      headers: {
        'Authorization': `Bearer ${token}`
      }
    });
    return response.data;
  } catch (error) {
    console.error('获取用户列表错误:', error);
    return {
      code: 500,
      message: '获取用户列表失败',
      data: null
    };
  }
};

/**
 * 更新用户信息（管理员用）
 * @param {string} userId - 用户ID
 * @param {Object} data - 用户信息
 * @param {string} data.username - 用户名
 * @param {string} data.nickname - 昵称
 * @param {string} data.gender - 性别
 * @param {string} data.bio - 个人简介
 * @param {string} data.email - 邮箱
 * @param {string} data.role - 角色
 * @returns {Promise} - 返回更新结果
 */
export const updateUser = async (userId, data) => {
  try {
    const token = localStorage.getItem('token');
    if (!token) {
      return {
        code: 401,
        message: '未登录，请先登录',
        data: null
      };
    }

    const response = await axios.put(`/api/users/${userId}`, data, {
      headers: {
        'Authorization': `Bearer ${token}`
      }
    });
    return response.data;
  } catch (error) {
    console.error('更新用户信息错误:', error);
    return {
      code: 500,
      message: '更新用户信息失败',
      data: null
    };
  }
};

/**
 * 删除用户
 * @param {string} userId - 用户ID
 * @returns {Promise} - 返回删除结果
 */
export const deleteUser = async (userId) => {
  try {
    const token = localStorage.getItem('token');
    if (!token) {
      return {
        code: 401,
        message: '未登录，请先登录',
        data: null
      };
    }

    const response = await axios.delete(`/api/users/${userId}`, {
      headers: {
        'Authorization': `Bearer ${token}`
      }
    });
    return response.data;
  } catch (error) {
    console.error('删除用户错误:', error);
    return {
      code: 500,
      message: '删除用户失败',
      data: null
    };
  }
};